1 /*
2 
3 Boost Software License - Version 1.0 - August 17th, 2003
4 
5 Permission is hereby granted, free of charge, to any person or organization
6 obtaining a copy of the software and accompanying documentation covered by
7 this license (the "Software") to use, reproduce, display, distribute,
8 execute, and transmit the Software, and to prepare derivative works of the
9 Software, and to permit third-parties to whom the Software is furnished to
10 do so, all subject to the following:
11 
12 The copyright notices in the Software and this entire statement, including
13 the above license grant, this restriction and the following disclaimer,
14 must be included in all copies of the Software, in whole or in part, and
15 all derivative works of the Software, unless such copies or derivative
16 works are solely in the form of machine-executable object code generated by
17 a source language processor.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 
27 */ 
28 
29 module derelict.purple.media;
30 
31 import derelict.glib.gtypes;
32 import derelict.glib.glibconfig;
33 import derelict.glib.glist;
34 import derelict.purple.account;
35 import derelict.purple.enum_types;
36 
37 extern (C):
38 
39 alias _PurpleMediaCodec PurpleMediaCodec;
40 
41 struct _PurpleMediaCodec;
42 
43 
44 alias _PurpleMedia PurpleMedia;
45 
46 struct _PurpleMediaManager;
47 
48 
49 struct _PurpleMedia;
50 
51 
52 version(Derelict_Link_Static)
53 {
54     extern( C ) nothrow 
55     {
56 	    GType purple_media_get_type();
57         GList* purple_media_get_session_ids(PurpleMedia* media);
58         PurpleAccount* purple_media_get_account(PurpleMedia* media);
59         gpointer purple_media_get_prpl_data(PurpleMedia* media);
60         void purple_media_set_prpl_data(PurpleMedia* media, gpointer prpl_data);
61         void purple_media_error(PurpleMedia* media, const(gchar)* error, ...);
62         void purple_media_end(PurpleMedia* media, const(gchar)* session_id, const(gchar)* participant);
63         void purple_media_stream_info(PurpleMedia* media, PurpleMediaInfoType type, const(gchar)* session_id, const(gchar)* participant, gboolean local);
64         void purple_media_set_params(PurpleMedia* media, guint num_params, GParameter* params);
65         const(gchar*)* purple_media_get_available_params(PurpleMedia* media);
66         gboolean purple_media_param_is_supported(PurpleMedia* media, const(gchar)* param);
67         gboolean purple_media_add_stream(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* who, PurpleMediaSessionType type, gboolean initiator, const(gchar)* transmitter, guint num_params, GParameter* params);
68         PurpleMediaSessionType purple_media_get_session_type(PurpleMedia* media, const(gchar)* sess_id);
69         _PurpleMediaManager* purple_media_get_manager(PurpleMedia* media);
70         GList* purple_media_get_codecs(PurpleMedia* media, const(gchar)* sess_id);
71         void purple_media_add_remote_candidates(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant, GList* remote_candidates);
72         GList* purple_media_get_local_candidates(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant);
73         GList* purple_media_get_active_local_candidates(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant);
74         GList* purple_media_get_active_remote_candidates(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant);
75         gboolean purple_media_set_remote_codecs(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant, GList* codecs);
76         gboolean purple_media_candidates_prepared(PurpleMedia* media, const(gchar)* session_id, const(gchar)* participant);
77         gboolean purple_media_set_send_codec(PurpleMedia* media, const(gchar)* sess_id, PurpleMediaCodec* codec);
78         gboolean purple_media_codecs_ready(PurpleMedia* media, const(gchar)* sess_id);
79         gboolean purple_media_is_initiator(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant);
80         gboolean purple_media_accepted(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant);
81         void purple_media_set_input_volume(PurpleMedia* media, const(gchar)* session_id, double level);
82         void purple_media_set_output_volume(PurpleMedia* media, const(gchar)* session_id, const(gchar)* participant, double level);
83         gulong purple_media_set_output_window(PurpleMedia* media, const(gchar)* session_id, const(gchar)* participant, gulong window_id);
84         void purple_media_remove_output_windows(PurpleMedia* media);
85     }
86 }
87 else
88 {
89     extern( C ) nothrow 
90     {
91 	    alias da_purple_media_get_type = GType function();																																															
92         alias da_purple_media_get_session_ids = GList* function(PurpleMedia* media);																																								
93         alias da_purple_media_get_account = PurpleAccount* function(PurpleMedia* media);																																							
94         alias da_purple_media_get_prpl_data = gpointer function(PurpleMedia* media);																																								
95         alias da_purple_media_set_prpl_data = void function(PurpleMedia* media, gpointer prpl_data);																																				
96         alias da_purple_media_error = void function(PurpleMedia* media, const(gchar)* error, ...);																																					
97         alias da_purple_media_end = void function(PurpleMedia* media, const(gchar)* session_id, const(gchar)* participant);																															
98         alias da_purple_media_stream_info = void function(PurpleMedia* media, PurpleMediaInfoType type, const(gchar)* session_id, const(gchar)* participant, gboolean local);																		
99         alias da_purple_media_set_params = void function(PurpleMedia* media, guint num_params, GParameter* params);																																	
100         alias da_purple_media_get_available_params = const(gchar*)* function(PurpleMedia* media);																																					
101         alias da_purple_media_param_is_supported = gboolean function(PurpleMedia* media, const(gchar)* param);																																		
102         alias da_purple_media_add_stream = gboolean function(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* who, PurpleMediaSessionType type, gboolean initiator, const(gchar)* transmitter, guint num_params, GParameter* params);		
103         alias da_purple_media_get_session_type = PurpleMediaSessionType function(PurpleMedia* media, const(gchar)* sess_id);																														
104         alias da_purple_media_get_manager = _PurpleMediaManager* function(PurpleMedia* media);																																						
105         alias da_purple_media_get_codecs = GList* function(PurpleMedia* media, const(gchar)* sess_id);																																				
106         alias da_purple_media_add_remote_candidates = void function(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant, GList* remote_candidates);																				
107         alias da_purple_media_get_local_candidates = GList* function(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant);																											
108         alias da_purple_media_get_active_local_candidates = GList* function(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant);																									
109         alias da_purple_media_get_active_remote_candidates = GList* function(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant);																									
110         alias da_purple_media_set_remote_codecs = gboolean function(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant, GList* codecs);																							
111         alias da_purple_media_candidates_prepared = gboolean function(PurpleMedia* media, const(gchar)* session_id, const(gchar)* participant);																										
112         alias da_purple_media_set_send_codec = gboolean function(PurpleMedia* media, const(gchar)* sess_id, PurpleMediaCodec* codec);																												
113         alias da_purple_media_codecs_ready = gboolean function(PurpleMedia* media, const(gchar)* sess_id);																																			
114         alias da_purple_media_is_initiator = gboolean function(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant);																												
115         alias da_purple_media_accepted = gboolean function(PurpleMedia* media, const(gchar)* sess_id, const(gchar)* participant);																													
116         alias da_purple_media_set_input_volume = void function(PurpleMedia* media, const(gchar)* session_id, double level);																															
117         alias da_purple_media_set_output_volume = void function(PurpleMedia* media, const(gchar)* session_id, const(gchar)* participant, double level);																								
118         alias da_purple_media_set_output_window = gulong function(PurpleMedia* media, const(gchar)* session_id, const(gchar)* participant, gulong window_id);																						
119         alias da_purple_media_remove_output_windows = void function(PurpleMedia* media);																																							
120     }
121 
122     __gshared
123     {
124 	    da_purple_media_get_type purple_media_get_type;
125 	    da_purple_media_get_session_ids purple_media_get_session_ids;
126 	    da_purple_media_get_account purple_media_get_account;
127 	    da_purple_media_get_prpl_data purple_media_get_prpl_data;
128 	    da_purple_media_set_prpl_data purple_media_set_prpl_data;
129 	    da_purple_media_error purple_media_error;
130 	    da_purple_media_end purple_media_end;
131 	    da_purple_media_stream_info purple_media_stream_info;
132 	    da_purple_media_set_params purple_media_set_params;
133 	    da_purple_media_get_available_params purple_media_get_available_params;
134 	    da_purple_media_param_is_supported purple_media_param_is_supported;
135 	    da_purple_media_add_stream purple_media_add_stream;
136 	    da_purple_media_get_session_type purple_media_get_session_type;
137 	    da_purple_media_get_manager purple_media_get_manager;
138 	    da_purple_media_get_codecs purple_media_get_codecs;
139 	    da_purple_media_add_remote_candidates purple_media_add_remote_candidates;
140 	    da_purple_media_get_local_candidates purple_media_get_local_candidates;
141 	    da_purple_media_get_active_local_candidates purple_media_get_active_local_candidates;
142 	    da_purple_media_get_active_remote_candidates purple_media_get_active_remote_candidates;
143 	    da_purple_media_set_remote_codecs purple_media_set_remote_codecs;
144 	    da_purple_media_candidates_prepared purple_media_candidates_prepared;
145 	    da_purple_media_set_send_codec purple_media_set_send_codec;
146 	    da_purple_media_codecs_ready purple_media_codecs_ready;
147 	    da_purple_media_is_initiator purple_media_is_initiator;
148 	    da_purple_media_accepted purple_media_accepted;
149 	    da_purple_media_set_input_volume purple_media_set_input_volume;
150 	    da_purple_media_set_output_volume purple_media_set_output_volume;
151 	    da_purple_media_set_output_window purple_media_set_output_window;
152 	    da_purple_media_remove_output_windows purple_media_remove_output_windows;
153     }
154 }